package gamefw.gameplugin;

/**
 * The Interface that should be implemented by all logical components of the game.
 * This allows the logical components to provide the necessary mappings to its
 * physical components.
 */
public interface IFace {

	/**
	 * Gets the visual resource.
	 *
	 * @param extension the extension that represents the type that is intended for the resource (.bmp, .obj, ...)
	 * @return the path for the visual resource of the type requested
	 */
	public String getVisualResource(String extension);
	
	/**
	 * Gets the logical position given a physical position.
	 *
	 * @param physicalPosition the physical position
	 * @return the logical position
	 */
	public Coordinate getLogicalPosition(Coordinate physicalPosition);
	
	/**
	 * Gets the physical position given a logical position.
	 *
	 * @param logicalPosition the logical position
	 * @return the physical position
	 */
	public Coordinate getPhysicalPosition(Coordinate logicalPosition);
}
